package com.ifacebox.software.updater;

/**
 * @author znn
 */
public interface SoftwareUpdaterCallback {
    /**
     * 准备
     *
     * @param softwareUpdaterConfig 配置
     */
    void onSoftwareUpdaterPrepared(SoftwareUpdaterConfig softwareUpdaterConfig);

    /**
     * 开始
     *
     * @param isSoftwareUpdater     是否开始
     * @param softwareUpdaterConfig 配置
     * @return 是否开始
     */
    boolean onSoftwareUpdaterStart(boolean isSoftwareUpdater, SoftwareUpdaterConfig softwareUpdaterConfig);

    /**
     * 完成
     *
     * @param softwareUpdaterConfig 配置
     */
    void onSoftwareUpdaterFinish(SoftwareUpdaterConfig softwareUpdaterConfig);

    /**
     * 失败
     *
     * @param softwareUpdaterException 异常
     */
    void onSoftwareUpdaterFailed(SoftwareUpdaterException softwareUpdaterException);

    /**
     * 过程
     *
     * @param totalSize   总大小
     * @param totalWrite  总写入大小
     * @param secondWrite 每秒写入大小
     */
    void onSoftwareUpdaterChanged(long totalSize, long totalWrite, long secondWrite);
}
